In recent years, data communication services have shown dramatic leaps in development due to the rapid proliferation of the Internet, and data communication using packets such as IP (Internet Protocol) packets is now becoming mainstream. In data communication services, demand for a service that strongly requires a real-time property such as audio or video data transmission is increasing remarkably. Accordingly, an increase in capacity due to an increasing data communication rate and an increase in communication reliability is significant for relay devices that are used as nodes of a router or switch in networks where data communication is performed.
Some of the above relay devices are provided with a data encapsulation (division/reconstruction) function or a QoS (Quality of Service) function that secures communication quality by controlling data delay or bandwidth. A storage device that stores data is essential for managing encapsulation and the transmission timing of the data. Hereinafter, such a storage device will be referred to as a “packet buffer”.
A packet buffer is divided into certain unit areas (address areas), and these unit areas are managed by data referred to as a pointer (PTR). As a method for managing a packet buffer by using pointers as above, a chain management method is known.
In the chain management method, an unused unit area is assigned to store data on a channel-by-channel basis, and data continuity is managed by using pointers. In such management, it is necessary to specify a pointer that has been assigned to a channel and the order in which the pointer was assigned to the channel on a channel-by-channel basis. For this reason, order specifying information (chain management information) is essential in the chain management method. Usually, the order in which the pointer was assigned is managed by the data indicating the pointer that is assigned after the present pointer on a pointer-by-pointer basis (link information).
The chain management information is stored in a specified storage device. An error may occur when data is written into or read from the storage device. When an error occurs in the data of the link information of the chain management information, not only the pointer indicated by the data in which the error has occurred but also the pointers subsequent to that pointer are not specified. Accordingly, an error may result in an increase in the number of unit areas that are not released in the packet buffer (memory leak). Due to high-density integration and reduction in driving power derived from advanced devices, errors tend to occur more easily.
When such a memory leak occurs, the available capacity of a packet buffer becomes smaller by the amount of the unit areas that are not released. Accordingly, throughput deterioration due to the back pressure on a relay device or data loss due to the overflow in a packet buffer occurs easily. The pointer data in which an error has occurred has been assigned to a channel, and it becomes impossible to specify the data for such a channel and thus data transmission (relay) is not performed.
Recently, the demand for reliability in the network infrastructure and communication quality has been ever increasing due to the development of cloud technology or the like. Such throughput deterioration or data loss has a great adverse effect on the communication quality.
In view of the above circumstances, also in conventional relay devices, error monitoring is performed on the access to a storage device. However, performing error monitoring by using an ECC (Error Correcting Code) or the like does not guarantee successful error correction on the data in which an error has occurred. This means that it is not always the case that a memory leak caused by an error will be successfully handled.
A memory leak caused by a non-correctable error may be resolved by resetting the relay device. However, when the relay device is reset, there will be a period during which the relay device is not operating, and all the data stored in the packet buffer is lost. Consequently, the quality of the data communication service significantly drops. In view of these circumstances, the capability to deal with a memory leak caused by a non-correctable error is crucial.
As a measure to deal with a memory leak, a technique may be adopted in which the operating time of each unit area of a packet buffer is measured and the unit areas that have been used for a period equal to or longer than a certain period of time are released. However, such a measure is not realistic. This is because, normally, the number of the channels handled in a relay device is very large, and the desired communication rate is different for each channel. In other words, this is because, normally, control becomes very complicated and the resources used for the control are enormous.
[Patent Document 1] Japanese Laid-open Patent Publication No. 09-244948
[Patent Document 2] Japanese Laid-open Patent Publication No. 2000-200210
[Patent Document 3] Japanese Laid-open Patent Publication No. 2002-057712
[Patent Document 4] Japanese Laid-open Patent Publication No. 2007-141193